A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs

نویسندگان

  • Carmen Torres Lopez
  • Stefan Marr
  • Hanspeter Mössenböck
  • Elisa Gonzalez Boix
چکیده

The actor model is an attractive foundation for developing concurrent applications because actors are isolated concurrent entities that communicate through asynchronous messages and do not share state. Thus, they avoid common concurrency bugs such as data races. However, they are not immune to concurrency bugs in general. This paper studies concurrency bugs in actor-based programs reported in literature. We define a taxonomy for these bugs. Furthermore, we analyze the bugs to identify the patterns causing them as well as their observable behavior. Based on our taxonomy, we further analyze the literature and find that current approaches to static analysis and testing focus on communication deadlocks and message protocol violations. However, they do not provide solutions to identify livelocks and behavioral deadlocks. We propose a research roadmap of the main debugging techniques that can help to support the development of actor-based programs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Understanding , Detecting and Exposing Concurrency Bugs

Software is pervasive in our daily lives. Unfortunately, software bugs can severely affect the dependability and security of software systems. Among all types of software bugs, the concurrency bug is one of the most troublesome and important. Concurrency bugs widely exist in concurrent programs. They are difficult to detect and diagnose because of their unique non-determinism. In the real world...

متن کامل

Why Do Scala Developers Mix the Actor Model with other Concurrency Models?

Mixing the actor model with other concurrency models in a single program can break the actor abstraction. This increases the chance of creating deadlocks and data races—two mistakes that are hard to make with actors. Furthermore, it prevents the use of many advanced testing, modeling, and verification tools for actors, as these require pure actor programs. This study is the first to point out t...

متن کامل

TransDPOR: A Novel Dynamic Partial-Order Reduction Technique for Testing Actor Programs

To detect hard-to-find concurrency bugs, current tools systematically explore all possible interleavings of the transitions in a program. Unfortunately, concurrent programs have a large number of possible interleavings due to nondeterminism. Speeding up such tools requires pruning the state space explored. Partial-order reduction (POR) techniques can substantially prune the number of explored i...

متن کامل

Finding Concurrency Bugs In Java

Because threads are a core feature of the Java language, the widespread adoption of Java has exposed a much wider audience to concurrency than previous languages have. Concurrent programs are notoriously difficult to write correctly, and many subtle bugs can result from incorrect use of threads and synchronization. Therefore, finding techniques to find concurrency bugs is an important problem. ...

متن کامل

Testing and Debugging Concurrency Bugs in Event-Driven Programs

Event-driven programs are prone to concurrency bugs due their inherent nature of handling asynchronous events. Asynchronous events introduce logical concurrency into these programs making them hard to be thoroughly tested and debugged. However, understanding the root causes and characteristics of concurrency bugs can ease the debugging process and help developers to avoid introducing them. Unfo...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • CoRR

دوره abs/1706.07372  شماره 

صفحات  -

تاریخ انتشار 2017